import random
import os

# 目标目录
target_dir = r"C:\Users\ASUS\Desktop\2025-BBUCPC\2025校赛出题\D题\D_inputs"
os.makedirs(target_dir, exist_ok=True)

# 生成20个随机测试点
for i in range(1, 21):
    # 根据随机数决定 n 的规模：
    # 20% 生成较小规模测试数据（1~6）
    # 40% 生成中等规模测试数据（11~1000）
    # 40% 生成较大规模测试数据（1000~100000）
    rnd = random.random()
    if rnd < 0.2:
        n = random.randint(1, 6)
    elif rnd < 0.6:
        n = random.randint(11, 1000)
    else:
        n = random.randint(1000, 100000)
    
    # 随机生成 n 个 a_i，每个值在 1～10^4 范围内
    a_list = [random.randint(1, 10000) for _ in range(n)]
    total_time = sum(a_list)
    
    # 通过总耗时乘以 0.1~0.9 之间的随机比例来生成 t
    ratio = random.uniform(0.1, 0.9)
    t = max(1, int(total_time * ratio))
    
    # 构造数据内容：第一行是 "n t"，第二行是各 a_i 用空格分隔
    content = f"{n} {t}\n" + " ".join(map(str, a_list))
    
    # 拼接目标文件路径，文件名为 i.in
    file_path = os.path.join(target_dir, f"{i}.in")
    with open(file_path, "w") as f:
        f.write(content)

print("20个测试点生成完毕!")
